package leetcode.leetcode_hot100;

/**
 * @ClassName T0064
 * @Description 最小路径和
 * @Author Fanxc
 * @DATE 2021/6/19 20:14
 * @Version 1.0
 */
public class T0064 {
    class Solution {
        public int minPathSum(int[][] grid) {
            int m= grid.length;
            int n=grid[0].length;
            int[][] dp=new int[m][n];
            dp[0][0]=grid[0][0];
            for (int i = 1; i < m; i++) {
                dp[i][0]=dp[i-1][0]+grid[i][0];
            }
            for (int i = 1; i < n; i++) {
                dp[0][i]=dp[0][i-1]+grid[0][i];
            }
            for (int i = 1; i < m; i++) {
                for (int j = 1; j < n; j++) {
                    dp[i][j]=grid[i][j]+Math.min(dp[i-1][j],dp[i][j-1]);
                }
            }
            return dp[m-1][n-1];
        }
    }
}
